from framework.interface.abstract_api import AbstractApi
from marshmallow import Schema, fields


# 请访问：http://127.0.0.1:5000/v1/auto-add-num
#  获取周期性增加次数  每一天 对于进入获取 uuid进行限制 当uuid的今日次数为0 则代表使用 结束
class AutoAddNum(AbstractApi):
    # 参数 模式
    class GetSchema(Schema):
        cient_ip = fields.Str(required=True)

    #  进去 把 非登录 游客用户的  IP进行 记录 并给予 10次的  G4体验 并标记为  status为1  代表今日已经给过 而对应的  每晚 23：50都会重新赋予新的10次机会作为定时任务
    def handle_get_request(self):
        # 135.146.51.4
        cient_ip =self.get_param("cient_ip")
        cient_code = self.convert_ip_to_code(cient_ip)
        # 转变为IP码  由 Ip数字组成后面加上其.的索引序
        data = [{
            "ids": cient_code,
            "name": cient_ip,
            "password": "2024",
            "scoreb": 10,
            "status":1
        }]
        update_sql=f"""replace into admin (ids,name,password,scoreb,status) values
                                                        (
                                                         '{cient_code}','{cient_ip}','2024',3,1
                                                        )"""
        datas=self.sql_db.query(update_sql)
        print("查询",datas)
        result=self.sql_db.value(sql=f"select scoreb from admin where name = {cient_code}")
        return result


    def convert_ip_to_code(self,ip_address):
        # 将IP地址分割为四个部分
        split_ip = ip_address.split('.')
        # 生成每个数字后面跟着'.'的索引的字符串
        encoded_ip = ''.join([str(int(part)) + str(index) for index, part in enumerate(split_ip)])
        return encoded_ip